package Vista;


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Vector;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;

import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import javax.swing.SwingUtilities;

import Controlador.Sistema;
import Modelo.DubCliente;


public class ViewAltaLinea extends javax.swing.JFrame {

	private static final long serialVersionUID = 1L;
	private JLabel jLabel1;
	private JLabel jLabel2;
	private JLabel jLabel3;
	private JButton jBBuscar;
	private JLabel jLabel4;
	private JTextField jTNumeroLinea;
	private JLabel jLabel5;
	private JRadioButton jRTitular;
	private JRadioButton jRAdic;
	private JButton jBCancelar;
	private JButton jBguardar;
	private JTextField jTNombreAdicional;
	private JComboBox jComboBPlan;
	private JLabel jLNombrePlan;
	private JLabel jLMensaje;
	private JTextField jTdocumento;
	private JLabel jLapellido;
	private JLabel jLnombre;
	public static ViewAltaLinea instancia;


	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				ViewAltaLinea inst = new ViewAltaLinea();
				inst.setLocationRelativeTo(null);
				inst.setVisible(true);
			}
		});
	}
	
	private ViewAltaLinea() {
		super();
		initGUI();
	}
	
	public static ViewAltaLinea getInstancia() 
	{
		if (instancia== null)
			instancia = new ViewAltaLinea();
		return instancia;
	}
	
	
	
	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				jLabel1 = new JLabel();
				getContentPane().add(jLabel1);
				jLabel1.setText("NOMBRE");
				jLabel1.setBounds(32, 45, 107, 21);
			}
			{
				jLabel2 = new JLabel();
				getContentPane().add(jLabel2);
				jLabel2.setText("DOCUMENTO");
				jLabel2.setBounds(31, 18, 114, 21);
			}
			{
				jLabel3 = new JLabel();
				getContentPane().add(jLabel3);
				jLabel3.setText("APELLIDO");
				jLabel3.setBounds(32, 72, 107, 21);
			}
			{
				jLnombre = new JLabel();
				getContentPane().add(jLnombre);
				jLnombre.setBounds(145, 45, 189, 21);
			}
			{
				jLapellido = new JLabel();
				getContentPane().add(jLapellido);
				jLapellido.setBounds(145, 71, 189, 21);
			}
			{
				jTdocumento = new JTextField();
				getContentPane().add(jTdocumento);
				jTdocumento.setBounds(145, 18, 195, 21);
			}
			{
				jBBuscar = new JButton();
				getContentPane().add(jBBuscar);
				getContentPane().add(getJLMensaje());
				getContentPane().add(getJLNombrePlan());
				getContentPane().add(getJTNumeroLinea());
				getContentPane().add(getJLabel4());
				getContentPane().add(getJComboBPlan());
				getContentPane().add(getJLabel5());
				getContentPane().add(getJTNombreAdicional());
				getContentPane().add(getJBguardar());
				getContentPane().add(getJBCancelar());
				getContentPane().add(getJRAdic());
				getContentPane().add(getJRadioButton1());
				jBBuscar.setText("BUSCAR");
				jBBuscar.setBounds(373, 18, 85, 21);
				jBBuscar.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						System.out.println("jBBuscar.actionPerformed, event="+evt);
						limpiarPantalla();
						DubCliente a = null;
						a = Sistema.getInstancia().buscarClienteMostrar(jTdocumento.getText());
						if (a != null)
						{
							int cantLineas = Sistema.getInstancia().getCantLineaPorCliente(jTdocumento.getText());
						   if (cantLineas >= 5 )
						    { 
							   JOptionPane.showMessageDialog(null, "El Cliente ya posee 5 lineas activas", "Advertencia", JOptionPane.INFORMATION_MESSAGE); 
						    }
						   else
						   {
							jLnombre.setText(a.getNombre());
							jLapellido.setText(a.getApellido());
							jTNumeroLinea.setEnabled(true);
							jComboBPlan.setEnabled(true);
							jRAdic.setEnabled(true);
							jRTitular.setEnabled(true);
							jBguardar.setEnabled(true);
						   }
						}
						else
						{
							JOptionPane.showMessageDialog(null, "Cliente Inexistente", "Advertencia", JOptionPane.INFORMATION_MESSAGE);
						}	
						
					}
				});
			}
			pack();
			this.setSize(486, 427);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private JLabel getJLMensaje() {
		if(jLMensaje == null) {
			jLMensaje = new JLabel();
			jLMensaje.setBounds(32, 98, 426, 25);
		}
		return jLMensaje;
	}

	
	private JLabel getJLNombrePlan() {
		if(jLNombrePlan == null) {
			jLNombrePlan = new JLabel();
			jLNombrePlan.setText("Numero Linea:");
			jLNombrePlan.setName("jLNombrePlan");
			jLNombrePlan.setBounds(32, 123, 97, 14);
		}
		return jLNombrePlan;
	}
	
	private JTextField getJTNumeroLinea() {
		if(jTNumeroLinea == null) {
			jTNumeroLinea = new JTextField();
			jTNumeroLinea.setName("jTNumeroLinea");
			jTNumeroLinea.setBounds(32, 143, 426, 21);
			jTNumeroLinea.setEnabled(false);
		}
		return jTNumeroLinea;
	}
	
	private JLabel getJLabel4() {
		if(jLabel4 == null) {
			jLabel4 = new JLabel();
			jLabel4.setText("Elija un Plan:");
			jLabel4.setName("jLabel4");
			jLabel4.setBounds(31, 176, 97, 14);
		}
		return jLabel4;
	}
	
	private JComboBox getJComboBPlan() {
		if(jComboBPlan == null) {
			ComboBoxModel jComboBPlanModel = 
					new DefaultComboBoxModel(
							new String[] { "" });
			jComboBPlan = new JComboBox();
			jComboBPlan.setModel(jComboBPlanModel);
			jComboBPlan.setBounds(31, 208, 427, 21);
			jComboBPlan.setEnabled(false);
			cargarComboPlan();
		}
		return jComboBPlan;
	}
	
	
	private void cargarComboPlan() {
			jComboBPlan.removeAllItems();
			Vector<String> a = Sistema.getInstancia().cargaComboPlan();
			for (int i = 0; i < a.size(); i++) 
				{
				 String c = a.elementAt(i);
				 jComboBPlan.addItem(c); 								
			    }	
		}

		
	

	private JLabel getJLabel5() {
		if(jLabel5 == null) {
			jLabel5 = new JLabel();
			jLabel5.setText("Nombre del Adicional");
			jLabel5.setName("jLabel5");
			jLabel5.setBounds(31, 278, 142, 14);
		}
		return jLabel5;
	}
	
	private JTextField getJTNombreAdicional() {
		if(jTNombreAdicional == null) {
			jTNombreAdicional = new JTextField();
			jTNombreAdicional.setAutoscrolls(false);
			jTNombreAdicional.setName("jTNombreAdicional");
			jTNombreAdicional.setBounds(31, 311, 427, 21);
			jTNombreAdicional.setEnabled(false);
		}
		return jTNombreAdicional;
	}
	
	private JButton getJBguardar() {
		if(jBguardar == null) {
			jBguardar = new JButton();
			jBguardar.setText("GUARDAR");
			jBguardar.setBounds(254, 349, 102, 21);
			jBguardar.setEnabled(false);
			jBguardar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					System.out.println("jBguardar.actionPerformed, event="+evt);
					int cantLineas = Sistema.getInstancia().getCantLineaPorCliente(jTdocumento.getText());
					if (jRAdic.isSelected())
					{
						if (cantLineas == 0 )
						{
							JOptionPane.showMessageDialog(null, "Debe seleccionar linea Titular", "Advertencia", JOptionPane.INFORMATION_MESSAGE);
						}
						else
						{
						Sistema.getInstancia().AltaLineaAdicional(Integer.parseInt(jTNumeroLinea.getText()), "ADICIONAL",jTdocumento.getText(), (String )jComboBPlan.getSelectedItem(), jTNombreAdicional.getText());
						limpiarPantalla();
						desactivarElementos();
					    }
					}	
					else
					{
						Sistema.getInstancia().AltaLineaTitular(Integer.parseInt(jTNumeroLinea.getText()), "TITULAR" , jTdocumento.getText(), (String )jComboBPlan.getSelectedItem());
						limpiarPantalla();
						desactivarElementos();
				    }
 				
				}
			});
		}
		return jBguardar;
	}
	
	private JButton getJBCancelar() {
		if(jBCancelar == null) {
			jBCancelar = new JButton();
			jBCancelar.setText("CANCELAR");
			jBCancelar.setBounds(356, 349, 102, 21);
		}
		return jBCancelar;
	}
	
	private JRadioButton getJRAdic() {
		if(jRAdic == null) {
			jRAdic = new JRadioButton();
			jRAdic.setText("Adicional");
			jRAdic.setBounds(31, 247, 81, 20);
			jRAdic.setEnabled(false);
			jRAdic.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					System.out.println("jRAdic.actionPerformed, event="+evt);
					if (jRAdic.isSelected())
					{	
						jRTitular.setEnabled(false);
						jTNombreAdicional.setEnabled(true);
					}	
					else
					{	
						jRTitular.setEnabled(true);
					    jTNombreAdicional.setEnabled(false);
					}
				}
			});
		}
		return jRAdic;
	}
	
	private JRadioButton getJRadioButton1() {
		if(jRTitular == null) {
			jRTitular = new JRadioButton();
			jRTitular.setText("Titular");
			jRTitular.setBounds(123, 247, 81, 20);
			jRTitular.setEnabled(false);
			jRTitular.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					System.out.println("jRTitular.actionPerformed, event="+evt);
					if (jRTitular.isSelected())		
						jRAdic.setEnabled(false);
					else
						jRAdic.setEnabled(true);
				}
			});
		}
		return jRTitular;
	}
	
	public void activarElementos ()
	{
		jTNumeroLinea.setEnabled(true);
		jComboBPlan.setEnabled(true);
		jRAdic.setEnabled(true);
		jRTitular.setEnabled(true);
		jBguardar.setEnabled(true);
	}
	
	public void desactivarElementos ()
	{
		jTNumeroLinea.setEnabled(false);
		jComboBPlan.setEnabled(false);
		jRAdic.setEnabled(false);
		jRTitular.setEnabled(false);
		jBguardar.setEnabled(false);
	}
	
	public void limpiarPantalla()
	{
		jTNumeroLinea.setText("");
		jLapellido.setText("");
		jLnombre.setText("");
		jTNombreAdicional.setText("");
	}
	
}
